package com.cms.recursoshumanos.json.object;

import com.cms.recursoshumanos.cache.ListaTipoEventoCache;
import com.cms.recursoshumanos.constant.Constant;
import com.cms.recursoshumanos.json.me.JSONArray;
import com.cms.recursoshumanos.json.me.JSONException;
import com.cms.recursoshumanos.json.me.JSONObject;
import com.cms.recursoshumanos.object.TipoEvento;
import com.cms.recursoshumanos.object.list.ListaTipoEvento;

public class JsonObjectGetTipoEvento 
{

	public static JsonObjectGetTipoEvento _instance = null;
	public static JsonObjectGetTipoEvento getInstance() {
		if(_instance == null)
			_instance = new JsonObjectGetTipoEvento();
		
		return _instance;
	}
	public String Result;
	private static final String
	
		GETTIPOEVENTOS = "GETTIPOEVENTOS",
		GETTIPOEVENTOS_STATUS = "STATUS",
		GETTIPOEVENTOS_DATA = "DATA",
		GETTIPOEVENTOS_DATOS_TIPO_EVENTO = "DATOS_TIPO_EVENTOS",
		
		GETTIPOEVENTOS_TIPO_EVENTO_ID = "tipo_evento_id",
		GETTIPOEVENTOS_NOMBRE_TIPO_EVENTO = "nombre_tipo_evento",
		GETTIPOEVENTOS_DESCRIPCION_TIPO_EVENTO = "descripcion_tipo_evento";
	

	
	
	
	public void fromJSON (String jsonString) 
	{
		if (jsonString != null)
		{
			if (!jsonString.equals(""))
			{
				try
				{
					JSONObject jsonObject = new JSONObject(jsonString);
					JSONObject getListaEvento = jsonObject.getJSONArray(GETTIPOEVENTOS).getJSONObject(0);
					String status = getListaEvento.getString(GETTIPOEVENTOS_STATUS);
					
					Result = status;
					
					if (status.equals(Constant.CODE_OK))
					{
		
						JSONArray data = getListaEvento.getJSONArray(GETTIPOEVENTOS_DATA);
						
						JSONObject objeto_data = data.getJSONObject(0);
						JSONArray datos_evento = objeto_data.getJSONArray(GETTIPOEVENTOS_DATOS_TIPO_EVENTO);
		
						ListaTipoEvento listado = new ListaTipoEvento();
						
						for (int i = 0; i < datos_evento.length(); i++ )
						{
							
								
								JSONObject json_evento = datos_evento.getJSONObject(i);
								
								listado.addTipoEvento(new TipoEvento(Integer.parseInt(json_evento.getString(GETTIPOEVENTOS_TIPO_EVENTO_ID)),
																		json_evento.getString(GETTIPOEVENTOS_NOMBRE_TIPO_EVENTO),
																		json_evento.getString(GETTIPOEVENTOS_DESCRIPCION_TIPO_EVENTO)));

							
										
						}
						ListaTipoEventoCache.getInstance().setListaTipoEvento(listado);
						
						
					}
						
					
				} 
				catch (JSONException ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
				}
				catch (Exception ex) 
				{
					ex.printStackTrace();
					Result = Constant.CODE_EMPTY;
				}
			}
			else
			{
				Result = Constant.CODE_NOT_SERVER_RESPONSE;
			}
		}
		else
		{
			Result = Constant.CODE_NOT_SERVER_RESPONSE;
		}

	}

	public String getResult()
	{
		return Result;
	}
	
}



